﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Easyleave.Logic.Validation
{
    public interface IValidation
    {
        /// <summary>
        /// Get the number of leaves counted for the given period. If any holiday is 
        /// within the period, those will be neglected.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="leaveType"></param>
        /// <param name="from"></param>
        /// <param name="to"></param>
        /// <returns></returns>
        int CountLeaves(DateTime from, DateTime to);

        /// <summary>
        /// available leaves for the user on given type
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="leaveType"></param>
        /// <returns></returns>
        int CountTotalEntitlement(Guid? userId, string leaveType);

        /// <summary>
        /// Possible leave type for the user
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        IList<string> GetLeaveTypes(Guid? userId);
    }
}
